package com.ssy.lingxi.order.service.base;

import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.entity.PlatformTradeProcessDO;
import com.ssy.lingxi.order.model.dto.OrderMemberQueryDTO;
import com.ssy.lingxi.order.model.vo.basic.request.OrderMemberIdAndRoleIdVO;

import java.util.List;

/**
 * 平台后台 - 交易流程关联的会员相关接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-26
 */
public interface IBasePlatformTradeProcessMemberService {
    /**
     * 校验、新增交易流程关联的会员
     * @param tradeProcess 交易流程
     * @param allMembers 是否适用于所有会员
     * @param memberList    会员列表
     * @return 操作结果
     */
    Wrapper<Void> checkMembers(PlatformTradeProcessDO tradeProcess, Boolean allMembers, List<OrderMemberIdAndRoleIdVO> memberList);

    /**
     * 分页查询交易流程关联的会员列表
     * @param tradeProcess 交易流程
     * @param name      会员名称
     * @param current   当前页
     * @param pageSize  每页行数
     * @return 查询结果
     */
    Wrapper<PageData<OrderMemberQueryDTO>> pageMembers(PlatformTradeProcessDO tradeProcess, String name, int current, int pageSize);

    /**
     * 校验、修改交易流程关联的会员
     * @param tradeProcess 交易流程
     * @param allMembers 是否适用于所有会员
     * @param memberList    会员列表
     * @return 操作结果
     */
    Wrapper<Void> updateMembers(PlatformTradeProcessDO tradeProcess, Boolean allMembers, List<OrderMemberIdAndRoleIdVO> memberList);
}
